<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>7.箭头函数</title>
</head>
<body>

<script>
  // //使用=>代表箭头函数，同时分隔形参和函数体
  // let f1 = ()=>{
  //   console.log('箭头函数')
  // }
  // f1()
  //
  // //只有一个参数的时候，小括号是可以省略的
  // let f2 = a=>{
  //   console.log(a+a)
  // }
  // f2(3)
  //
  // //函数体只有一条语句的时候，花括号也可以省略
  // let f3 = a=>console.log(a*a)
  // f3(4)

  // //1. 箭头函数的this是静态，永远指向函数定义时的作用域下的this
  // //所有apply和call函数对箭头函数是无效的
  // let f4 = function () {
  //     console.log(this.name)
  // }
  //
  // let f5 = ()=>{
  //     console.log(this.name)
  // }
  //
  // window.name = 'window'
  // let o1 ={
  //     name: 'object'
  // }
  // f4()//window
  // f5()//window
  //
  // f4.call(o1)//object
  // f5.call(o1)//window

    // //2. 无法作为构造函数
    // let Person = ()=>{
    // }
    //
    // let p1 = new Person()

    //3. 无法使用arguments参数
    let f7 = function (a,b,c) {
        console.log(arguments)
    }
    f7(1,2,3)

    let f6 = (a,b,c)=>{
        console.log(arguments)
    }
    f6(1,2,3)

</script>
</body>
</html>